최소 공통 조상 BOJ 1761 정점들의 거리 시간 2초, 메모리 128MB input : N(2 ≤ N ≤ 40,000) N - 1개의 줄 : 트리 상에 연결된 두 점과 거리 M(1 ≤ M ≤ 10,000) M개의 줄 : 한 쌍씩 입력 output : 두 노드 사이의 거리를 출력 조건 : N개의 정점으로 이루어진 트리 M개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력 개선된 LCA를 사용해서 해결하려 하였지만 parent에... LCA트리최소 공통 조상2021.11.092021.11.09 BOJ 11438 LCA2 시간 1.5초, 메모리 256MB input : N(2 ≤ N ≤ 100,000) N-1개 줄 : 트리 상에서 연결된 두 정점 M(1 ≤ M ≤ 100,000) M개 줄에는 정점 쌍 output : 첫 줄에 동호가 받을 수 있는 최대 컵라면 수를 출력 조건 : 두 노드의 가장 가까운 공통 조상이 몇 번인지 출력 앞의 LCA를 개선해야만 해결이 가능한 문제이다. 그렇기에 시간 복잡도는 매우 강... LCA트리최소 공통 조상2021.11.092021.11.09 백준 3584, 가장 가까운 공통 조상 - Tree, DFS, DP, LCA (Lowest Common Ancestor) 입력 트리 노드 정보가 "부모 노드 - 자식 노드" 형태로 주어짐 1) 모든 노드의 깊이, 2^0 번째 부모 (직계 부모) 저장 2) 모든 노드의 2^i 번째 부모 저장 DP 배열 (Sparse Table): int[][] parent = new int[n][21]; n: 트리 노드 개수, 21: 트리 깊이 20이면 충분 parent[nodeIdx][i]: 노드의 2^i 번째 부모 노드의 2... 깊이 우선 탐색Lowest Common Ancestor백준 3584 가장 가까운 공통 조상알고리즘최소 공통 조상dynamic programming코딩 테스트tree그래프 탐색depth first search트리DFS다이나믹 프로그래밍DPLCADFS
BOJ 1761 정점들의 거리 시간 2초, 메모리 128MB input : N(2 ≤ N ≤ 40,000) N - 1개의 줄 : 트리 상에 연결된 두 점과 거리 M(1 ≤ M ≤ 10,000) M개의 줄 : 한 쌍씩 입력 output : 두 노드 사이의 거리를 출력 조건 : N개의 정점으로 이루어진 트리 M개의 두 노드 쌍을 입력받을 때 두 노드 사이의 거리를 출력 개선된 LCA를 사용해서 해결하려 하였지만 parent에... LCA트리최소 공통 조상2021.11.092021.11.09 BOJ 11438 LCA2 시간 1.5초, 메모리 256MB input : N(2 ≤ N ≤ 100,000) N-1개 줄 : 트리 상에서 연결된 두 정점 M(1 ≤ M ≤ 100,000) M개 줄에는 정점 쌍 output : 첫 줄에 동호가 받을 수 있는 최대 컵라면 수를 출력 조건 : 두 노드의 가장 가까운 공통 조상이 몇 번인지 출력 앞의 LCA를 개선해야만 해결이 가능한 문제이다. 그렇기에 시간 복잡도는 매우 강... LCA트리최소 공통 조상2021.11.092021.11.09 백준 3584, 가장 가까운 공통 조상 - Tree, DFS, DP, LCA (Lowest Common Ancestor) 입력 트리 노드 정보가 "부모 노드 - 자식 노드" 형태로 주어짐 1) 모든 노드의 깊이, 2^0 번째 부모 (직계 부모) 저장 2) 모든 노드의 2^i 번째 부모 저장 DP 배열 (Sparse Table): int[][] parent = new int[n][21]; n: 트리 노드 개수, 21: 트리 깊이 20이면 충분 parent[nodeIdx][i]: 노드의 2^i 번째 부모 노드의 2... 깊이 우선 탐색Lowest Common Ancestor백준 3584 가장 가까운 공통 조상알고리즘최소 공통 조상dynamic programming코딩 테스트tree그래프 탐색depth first search트리DFS다이나믹 프로그래밍DPLCADFS